package com.ruoyi.invoice.mapper;

import java.util.List;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.invoice.domain.SalesInvoice;
import com.ruoyi.invoice.dto.SalesInvoiceDTO;
import com.ruoyi.invoice.vo.SalesInvoiceVO;

/**
 * 销项发票Mapper接口
 * 
 * @author ruoyi
 * @date 2025-03-06
 */
public interface SalesInvoiceMapper extends BaseMapper<SalesInvoice>
{
    /**
     * 查询销项发票
     * 
     * @param salesInvoiceId 销项发票主键
     * @return 销项发票
     */
    public SalesInvoice selectSalesInvoiceBySalesInvoiceId(Long salesInvoiceId);

    /**
     * 查询销项发票列表
     * 
     * @param
     * @return 销项发票集合
     */
    public List<SalesInvoiceVO> selectSalesInvoiceList(SalesInvoiceDTO salesInvoiceDTO);

    /**
     * 新增销项发票
     * 
     * @param salesInvoice 销项发票
     * @return 结果
     */
    public int insertSalesInvoice(SalesInvoice salesInvoice);

    /**
     * 修改销项发票
     * 
     * @param salesInvoice 销项发票
     * @return 结果
     */
    public int updateSalesInvoice(SalesInvoice salesInvoice);

    /**
     * 删除销项发票
     * 
     * @param salesInvoiceId 销项发票主键
     * @return 结果
     */
    public int deleteSalesInvoiceBySalesInvoiceId(Long salesInvoiceId);

    /**
     * 批量删除销项发票
     * 
     * @param salesInvoiceIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteSalesInvoiceBySalesInvoiceIds(Long[] salesInvoiceIds);
}
